//判断路径是否相交-----1496
// 给你一个字符串 path，其中 path[i] 的值可以是 'N'、'S'、'E' 或者 'W'，分别表示向北、向南、向东、向西移动一个单位。
// 你从二维平面上的原点 (0, 0) 处开始出发，按 path 所指示的路径行走。
// 如果路径在任何位置上与自身相交，也就是走到之前已经走过的位置，请返回 true ；否则，返回 false 。

 
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool isPathCrossing(char* path) 
{
    int len = strlen(path);
    for(int i = 0;i < len; i++)
    {
        //判断有无往返，例如NS WE
        if(i+1 < len &&     //判断是否超出数组范围
        ((path[i] == 'W' && path[i+1] == 'E')
        ||(path[i] == 'W' && path[i+1] == 'E')
        ||(path[i] == 'N' && path[i+1] == 'S')
        ||(path[i] == 'S' && path[i+1] == 'N')))
        return true;
        int x = 0;//横坐标
        int y = 0;//纵坐标
        for(int j = i; j < len; j++)
        {
            if(path[j] == 'N')
            {
                y++;
            }
            if(path[j] == 'S')
            {
                y--;
            }
            if(path[j] == 'W')
            {
                x--;
            }
            if(path[j] == 'E')
            {
                x++;
            }
            if(x==0&&y==0)
            {
                return true;
            }           
        }
    }
    return false;
}


int main()
{
    char *path = "NESWW";
    printf("%d\n",isPathCrossing(path));
}